﻿@model myFinance.Models.Conta
@{
	ViewBag.Title = "Contas - Cadastro";
	var css = Model.Id > 0 ? "margin-left: 100px;" : "";
}
<!DOCTYPE html>
<html>
<head>
	<title>Cadastro</title>
	@if (false)
 {
		<script type="text/javascript" src="../../Scripts/jquery-1.6.4-vsdoc.js"></script>
		<script type="text/javascript" src="../../Scripts/jquery.validate-vsdoc.js"></script>
		<script type="text/javascript" src="../../Scripts/jquery.validate.js"></script>
		<script type="text/javascript" src="../../Scripts/numbers.js"></script>
		<script type="text/javascript" src="../../Scripts/script.js"></script>
 }	
	<style type="text/css">
        #corpo
        {
            height: 500px;
            margin: auto;
            width: 900px;
            padding: 0;
        }
        #Descricao
        {
            width: 400px;
        }
        #Observacao
        {
            width: 405px;
        }
        #GrupoDespesaId
        {
            width: 180px;
        }
        #SubGrupoDespesaId
        {
            width: 225px;
            margin-left: 5px;
        }
        #DataVencimento
        {
            @css
        }        
        .destaque-label
        {
            font-size: 20px;
        }
        #escolha
        {
            width: 400px;
            height: 100px;
            padding: 20px 0;
            text-align: center;
            font-size: 1.5em;
        }
        #grupo, #sub-grupo
        {
            width: 700px;
            height: 100px;
            padding: 20px 0;
            text-align: center;
            font-size: 1.5em;
        }
        #sub-grupo
        {
            height: 150px;
        }
    </style>
</head>
<body>
	<div id="corpo">
		@using (Html.BeginForm("Cadastro", "Conta", FormMethod.Post, new { id = "formconta" }))
  {
			@Html.ValidationSummary(true)
		
			@Html.HiddenFor(model => model.Id)
			@Html.HiddenFor(model => model.PessoaId)
			@Html.HiddenFor(model => model.IdContaPrincipal)
			<div class="editor-label">
				@Html.LabelFor(model => model.CodigoReferencia, Model.Id > 0 ? "Cod. Ref. / Data Cad.: " : "Cod. Ref.: ")
			</div>
			<div class="editor-field destaque-label" style="width: 600px;">
				@Html.TextBoxFor(model => model.CodigoReferencia, new { @class = "readonly integer-readonly", @readonly = "readonly", tabindex = "-1" })
				@Html.ValidationMessageFor(model => model.CodigoReferencia)
				@if (Model.Id > 0)
	{
					@Html.RadioButtonFor(model => model.Entrada, 1, new { id = "entrada", style = "margin-left: 100px;" })
					<label for="entrada">
						Entrada</label>
		if (@Model.Id > 0)
		{
					@Html.RadioButtonFor(model => model.Entrada, 2, new { id = "saida", style = "margin-left: 20px;" })
		}
		else
		{
					@Html.RadioButtonFor(model => model.Entrada, 2, new { id = "saida", @checked = "checked", style = "margin-left: 20px;" })
		}
					<label for="saida">
						Saída</label>
	}
	else
	{
					@Html.RadioButtonFor(model => model.Entrada, 1, new { id = "entrada", style = "margin-left: 100px;" })
					<label for="entrada">
						Entrada</label>
					@Html.RadioButtonFor(model => model.Entrada, 2, new { id = "saida", @checked = "checked", style = "margin-left: 20px;" })
					<label for="saida">
						Saída</label>
	}
			</div>
	if (@Model.Id > 0)
	{                
			<div class="editor-label">
				@Html.LabelFor(model => model.DataCadastro, "Data Cadastro / Vencimento: ")
			</div>
			<div class="editor-field">
				@Html.TextBox("DataCadastro", Model.DataCadastro.ToShortDateString(), new { maxlength = 10, @class = "datepicker-readonly", @readonly = "readonly", tabindex = "-1" })
				@Html.ValidationMessageFor(model => model.DataCadastro)
				@Html.EditorFor(model => model.DataVencimento)
				@Html.ValidationMessageFor(model => model.DataVencimento)
			</div>				
	}
	else
	{
			@Html.HiddenFor(model => model.DataCadastro)
			<div class="editor-label">
				@Html.LabelFor(model => model.DataVencimento, "Data Vencimento: ")
			</div>
			<div class="editor-field">
				@Html.TextBoxFor(model => model.DataVencimento, new { maxlength = 10, @class = "datepicker obrigatorio", data_mindate = DateTime.Now.AddYears(-3), data_maxdate = DateTime.Now.AddYears(10) })
				@Html.ValidationMessageFor(model => model.DataVencimento)
			</div>
	}	
			<div class="editor-label">
				@Html.LabelFor(model => model.Descricao, "Descrição: ")
			</div>
			<div class="editor-field">
				@Html.TextBoxFor(model => model.Descricao, new { maxlength = 100, @class = "obrigatorio" })
				@Html.ValidationMessageFor(model => model.Descricao)
			</div>
			<div class="editor-label">
				@Html.LabelFor(model => model.Valor, "Valor: ")
			</div>
			<div class="editor-field">
				@Html.TextBoxFor(model => model.Valor, new { @class = "decimal obrigatorio" })
				@Html.ValidationMessageFor(model => model.Valor)
			</div>			
			<div class="editor-label">
				@Html.LabelFor(model => model.Parcelas, "Parcelas: ")
			</div>
			<div class="editor-field">
				@if (Model.Id > 0)
	{
					@Html.TextBoxFor(model => model.Parcela, new { @class = "integer-readonly", @readonly = "readonly", tabindex = "-1" })
					<span class="destaque-label" style="margin-left: 37px; margin-right: 37px;">de</span>
					@Html.TextBoxFor(model => model.Parcelas, new { @class = "obrigatorio integer-readonly", @readonly = "readonly", tabindex = "-1" })
					@Html.ValidationMessageFor(model => model.Parcelas)
	}
	else
	{
					@Html.TextBoxFor(model => model.Parcela, new { @class = "integer-readonly", @readonly = "readonly", tabindex = "-1" })
					<span class="destaque-label" style="margin-left: 37px; margin-right: 37px;">de</span>
					@Html.TextBoxFor(model => model.Parcelas, new { @class = "integer obrigatorio" })
					@Html.ValidationMessageFor(model => model.Parcelas)
	}
			</div>
			<div class="editor-label">
				&nbsp;
			</div>
			<div class="editor-field destaque-label" style="margin-bottom: 15px">
				@Html.RadioButtonFor(model => model.Parcelada, false, new { id = "gerar-novas-contas", @disabled = "disabled" })
				<label for="gerar-novas-contas">
					Gerar
					<span class="num-parcelas">@Model.Parcelas</span>
					novas contas com este valor
				</label>
				<br />
				@Html.RadioButtonFor(model => model.Parcelada, true, new { id = "dividir-em-parcelas", @disabled = "disabled" })
				<label for="dividir-em-parcelas">
					Dividir este valor em
					<span class="num-parcelas">@Model.Parcelas</span>
					vezes
				</label>
			</div>
	
			<div class="editor-label">
				@Html.LabelFor(model => model.GrupoDespesaId, "Grupo / Sub Grupo de Despesa: ")
			</div>	
			<div class="editor-field">
				@Html.DropDownListFor(model => model.GrupoDespesaId, (IEnumerable<SelectListItem>)ViewBag.GrupoDespesa)
				@if (Model.Id > 0)
	{
					@Html.DropDownListFor(model => model.SubGrupoDespesaId, (IEnumerable<SelectListItem>)ViewBag.SubGrupoDespesa, new { @class = "obrigatorio" })
	}
	else
	{
					@Html.DropDownListFor(model => model.SubGrupoDespesaId, (IEnumerable<SelectListItem>)ViewBag.SubGrupoDespesa, string.Empty, new { @class = "obrigatorio" })
	}
				<input type="button" id="add-grupo" value="" class="botao-add" />
				@Html.ValidationMessageFor(model => model.SubGrupoDespesaId)
			</div>                
	if (Model.Id > 0)
	{
			<div class="editor-label">
				&nbsp;
			</div>
			<div class="editor-field destaque-label">
				@Html.CheckBoxFor(model => model.Quitada, new { @disabled = "disabled" })
				@Html.LabelFor(model => model.Quitada, " Esta conta já foi quitada/recebida?")
			</div>			
	}				
			<div class="editor-label">
				&nbsp;
			</div>
			<div class="editor-field destaque-label">
				@if (Model.Id > 0 && Model.GerarTarefa)
	{
					@Html.CheckBoxFor(model => model.GerarTarefa, new { @disabled = "disabled" }) 
					@Html.LabelFor(model => model.GerarTarefa, " Gerar uma Tarefa para lembrete desta conta?")
	}
	else
	{
					@Html.CheckBoxFor(model => model.GerarTarefa) 
					@Html.LabelFor(model => model.GerarTarefa, " Gerar uma Tarefa para lembrete desta conta?")
	}
			</div>
			<div class="editor-label" style="height: 80px">
				@Html.LabelFor(model => model.Observacao, "Observação: ")
			</div>
			<div class="editor-field" style="height: 80px">
				@Html.TextAreaFor(model => model.Observacao, new { maxlength = 300, @class = "textarea" })
				@Html.ValidationMessageFor(model => model.Observacao)
			</div>
			<div class="editor-label">
				&nbsp;
			</div>
			<div class="editor-field" style="float: right; padding-right: 230px; margin-top: 15px;">
				<input type="submit" value="Gravar" />
				<input type="button" value="Cancelar" id="cancelar" />
			</div>
  }
	</div>
	<a href="#escolha" id="win-add" style="display: none;"></a><a href="#" id="win-add-grupo" style="display: none;"></a><a href="#"
		id="win-add-sub-grupo" style="display: none;"></a>
	<div style="display: none">
		<div id="escolha">
			O quê deseja incluir?
			<div style="margin: 20px auto">
				<input type="button" value="Grupo" id="grupo-despesa" />&nbsp;&nbsp;&nbsp;&nbsp;
				<input type="button" value="Sub-Grupo" id="sub-grupo-despesa" />
			</div>
		</div>
	</div>
	<script type="text/javascript">
		var url;
		$(function () {
			$.validator.unobtrusive.parse($('#formconta'));
			$.validator.methods.qtdeMinima = function (value, element, param) { return $(element).valueFloat() > 0 ? true : false; };
			$('.datepicker').mask('99/99/9999');
			$('.decimal').each(function () {
				$(this).rules('remove');
				$(this).rules("add", {
					qtdeMinima: true,
					messages: {
						qtdeMinima: "* Por favor, digite um valor."
					}
				});
			});
			$('.integer').each(function () {
				$(this).rules('remove');
				$(this).rules("add", {
					qtdeMinima: true,
					messages: {
						qtdeMinima: "* Por favor, digite um valor."
					}
				});
			});
			loadPage();
			hideLoading();
			if ('@Model.Id' == 0) {
				$('#DataVencimento').val('');
				$('#saida').focus();
			} else {
				$('#Descricao').focus();
			}
		});
		$('#Parcelas.integer').blur(function () {
			var p = $(this).val();
			if (p > 1) {
				$('#gerar-novas-contas, #dividir-em-parcelas').removeAttr('disabled')
				$('.num-parcelas').html(p);
			} else {
				$('#gerar-novas-contas, #dividir-em-parcelas').attr('disabled', 'disabled')
				$('.num-parcelas').html('1');
			}
			$('#gerar-novas-contas').focus();
		});
		
		$('#cancelar').click(function () {
			showLoading();
			window.location.href = '@Url.Action("Index", "Conta")';
		});
		$('#GrupoDespesaId').live('change', function () {
			var idGrupo = $('#GrupoDespesaId option:selected').val();
			var combo = $('#SubGrupoDespesaId');
			combo.addClass('loading').attr('disabled', 'disabled').val('');
			$.get('@Url.Action("CarregaComboSubGrupo", "GrupoDespesa")', { id: idGrupo }, function (dados) {
				if (dados != undefined) {
					combo.empty();
					$.each(dados.Data, function (index, subgrupo) {
						combo.append('<option value="' + subgrupo.Value + '">' + subgrupo.Text + '</option>');
					});
					combo.removeAttr('disabled').focus();
				}
			});
		});
		$('#add-grupo').click(function (e) {
			e.preventDefault();
			$("#win-add").click();
		});
		$("#win-add").fancybox({
			'autoScale': true,
			'autoDimensions': true,
			'transitionIn': 'fade',
			'transitionOut': 'fade',
			'showCloseButton': true,
			'hideOnOverlayClick': false,
			'hideOnContentClick': false,
			'type': 'inline',
			'onClosed': function () {

			}
		});
		$('#grupo-despesa').click(function (e) {
			$("#win-add-grupo").click();
		});
		$('#sub-grupo-despesa').click(function (e) {
			$("#win-add-sub-grupo").click();
		});
		$("#win-add-grupo").fancybox({
			'autoScale': true,
			'autoDimensions': true,
			'transitionIn': 'fade',
			'transitionOut': 'fade',
			'showCloseButton': true,
			'hideOnOverlayClick': false,
			'hideOnContentClick': false,
			'type': 'inline',
			'content': '@Url.Action("CadastroGrupoConta", "GrupoDespesa")/0',
			'onClosed': function () {

			}
		});
		$("#win-add-sub-grupo").fancybox({
			'autoScale': true,
			'autoDimensions': true,
			'transitionIn': 'fade',
			'transitionOut': 'fade',
			'showCloseButton': true,
			'hideOnOverlayClick': false,
			'hideOnContentClick': false,
			'type': 'inline',
			'content': '@Url.Action("CadastroSubGrupoConta", "GrupoDespesa")/0',
			'onClosed': function () {

			}
		});
		$('#cancelar-grupo, #cancelar-sub-grupo').click(function (e) {
			e.preventDefault();
			$.fancybox.close();
		});
		$('form').submit(function () {
		    showLoading();
		});
	</script>
</body>
</html>
